/**********************************************************************************************/
/* FBL_Version.h																			  */
/*                                                                       					  */
/* Copyright Paradigma, 1993-2006                                       					  */
/* All Rights Reserved.                                                 					  */
/**********************************************************************************************/

#ifndef _FBL_Version_h
	#define _FBL_Version_h
#pragma once

// NO NAMESPACE because macroses here.


/**********************************************************************************************/
#define kKernelVersionMajor					3	// 0x03
#define kKernelVersionMinor					5	// 0x03
#define kKernelVersionRevision				0	// 0x00

#define kKernelVersionMajorStr				"3"	
#define kKernelVersionMinorStr				"5"	
#define kKernelVersionRevisionStr			"0"		

#define	kSpecialBuildString					"b2" 


/**********************************************************************************************/
// Added for 3.x
// BuildDate allow for engine to know WHEN it was built.
// This allow to check if a serial number is expired and should be rejected.
// This constant must be changed manually (!!!) at least for RELEASE builds.
// Its format "YYYY/MM/DD".
//
#define kBuildDate							"2007/10/10"


/**********************************************************************************************/
// DO NOT change this! Its FIXED date.
//
#define kOldEmbeddedLicenseDate				"2005/05/01"


/**********************************************************************************************/
#define kKernelVersionMinorAndRevision		0x00
#define kKernelVersionInternalRelease		0x00


/**********************************************************************************************/
// AUTO: Glue them all together for easy comparison
//
#ifndef REZ
#define	kKernelVersion ((ulong(kKernelVersionMajor) << 24) | (ulong(kKernelVersionMinor & 0x0F) << 20) | (ulong(kKernelVersionRevision & 0x0F)	<< 16) | (ulong(kKernelVersionStage) <<  8) | (ulong(kKernelVersionInternalRelease)))
#endif


/**********************************************************************************************/
//#if FBL_MAC
//#define kKernelVersionStage				betaStage
//#else
#define kKernelVersionStage					0x80	
//#endif


/**********************************************************************************************/
// AUTO: This macro produces a full version of kernel as string: e.g.  "2.0.5" or "2.1"
// If last digit is zero it is not used.
//
#if kKernelVersionRevision == 0 
#define	kVersionString		kKernelVersionMajorStr "." kKernelVersionMinorStr
#else
#define	kVersionString		kKernelVersionMajorStr "." kKernelVersionMinorStr "." kKernelVersionRevisionStr
#endif // kKernelVersionRevision == 0


/**********************************************************************************************/
// AUTO: This macro produces a full version of kernel as string including special build info:
//		 e.g. "2.0.5 b12". Note a space between numbers.
// 
#define	kKernelVersionString				kVersionString " " kSpecialBuildString


/**********************************************************************************************/
// AUTO: This macro produces NON-string, but list of coma separated values.
//		 It is used on Windows by V4MD Visual project for example.
//
#define kKernelVersion_List_WIN  kKernelVersionMajor, kKernelVersionMinor, kKernelVersionRevision, 0


/**********************************************************************************************/
#endif // _FBL_Version_h


